/**
 * 封装请求函数模块
 */
const baseUrl = 'https://gmall-prod.atguigu.cn/mall-api';

const app = getApp();

function request(url, data = {}, method = 'GET') {
  return new Promise((resolve, reject) => {
    wx.request({
      url: baseUrl + url,
      method,
      data,
      header: {
        token: app.globalData.token
      },
      success(res) {
        /*
          res:
            cookies 放cookie
            data 请求成功的数据（响应体数据）
              code 功能状态码
              data 成功的数据
              message 失败的原因
            errMsg 失败信息
            header 响应头
            statusCode 响应状态码
        */
        // 只要服务器有返回响应，就会进入success
        // console.log('success', res);
        if (res.statusCode >= 200 && res.statusCode < 300) {
          // 请求成功
          if (res.data.code === 200) {
            // 功能成功
            resolve(res.data.data);
          } else {
            // 功能失败
            // console.log('功能失败', res.data.message);
            wx.showToast({
              title: res.data.message,
              icon: 'error'
            })
            reject(res.data.message);
          }
        } else {
          // 请求失败
          // console.log(res.data.error);
          wx.showToast({
            title: res.data.error,
            icon: 'error'
          })
          reject(res.data.error);
        }
      },
      fail(err) {
        // 服务器没有在规定内返回响应，就会进入fail
        // console.log('fail', err.errMsg);
        wx.showToast({
          title: err.errMsg,
          icon: 'error'
        })
        reject(err.errMsg);
      }
    })
  })
};

export default request;
